<html>
<head>
    <title>Service Stack Overview</title>
    <link rel="stylesheet" type="text/css" href="default.css" />
</head>
<body class="host">

<div id="header">
	<a id="btn-googlecode" href="http://code.google.com/p/servicestack" title="go to service stack project on google code"><img src="btn-googlecode.png" alt="google code project" alt="Google Code logo" /></a>

	<a href="http://www.servicestack.net" title="Open source Mono and .NET web service framework"><img src="logo-servicestack.png" alt="Service Stack" /></a>
	<h3 id="logo-title">Open source .NET and Mono web services framework</h3>

	<div id="breadcrumbs">
		<a href="http://www.servicestack.net" class="selected">servicestack.net</a>
		| <a href="http://code.google.com/p/servicestack">code.google.com</a>
		| <a href="http://www.servicestack.net/monotouch/remote-info/">monotouch tutorial</a>
		| <a href="http://www.servicestack.net/mythz_blog/">blog</a>
	</div>
</div>



<div id="content">
<div id="top-nav"><a href="default.htm">&lt; back</a></div>

<h2>Detailed overview of Service Stack</h2>

<img src="detailed-overview.png" alt="Detailed overview of Service Stack" />

<br />
<p>
	The diagram above shows all the custom code needed to host a simple web service in Service Stack.
</p>
<p>
	No other endpoint configurations, mandatory base classes, Operation or Service Contract's are required - your service will just work.<br/>
	It's well suited for SOA webservices development as you get the complete freedom of your Request and
	Response DataContract's to define your web service interface.
	Your <acronym title="Data Transfer Objects">DTO</acronym>'s define everything,
	Service Stack does not add any extra markup to your services - they're just pure DTO's over HTTP.
</p>
<p>
	The endpoint protocols and webservice transport are abstracted away (although still discoverable)
	free-ing you to concentrate on implementing the web service logic against strongly-typed DataContract's.
	If your DataContract's are kept in a dependency-free seperate assembly, they can safely be shared with
	all your .NET service clients (including Silverlight) eliminating the need for any generated code.

</p>

<p>
	The Xml and Json endpoints are efficient lightweight IHttpHandler's that allow your service to be called via REST HTTP GET requests, e.g:
</p>

<dl>
	<dd><a href="http://www.servicestack.net/ServiceStack.Examples.Host.Web/Public/Xml/SyncReply/GetFactorial?ForNumber=2">/Xml/SyncReply/GetFactorial?ForNumber=2</a></dd>
	<dd><a href="http://www.servicestack.net/ServiceStack.Examples.Host.Web/Public/Json/SyncReply/GetFactorial?ForNumber=2">/Json/SyncReply/GetFactorial?ForNumber=2</a></dd>
</dl>

<p>
	A dynamically generated <a href="http://www.servicestack.net/ServiceStack.Examples.Host.Web/Public/Metadata">/Metadata</a> page
	(containing your webservices <a href="http://www.servicestack.net/ServiceStack.Examples.Host.Web/Public/Public/Soap12/Wsdl">WSDL's</a>)
	listing all your web services is also provided to assist service consumers discovering and accessing your services:
</p>

<img id="img-metadata" src="page-metadata.png" alt="Service Stack metadata page" />

<div id="top-nav"><a href="default.htm">&lt; back</a></div>

</div>

<span class="r"></span>
<div id="footer">
	Copyright &copy; 2010 Liquidbit Limited. All rights reserved.
</div>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-7722718-7");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
